/**
 * Created by no1 on 2015/7/10.
 */
'use strict';

console.log('Load O2O: ' + module.id);
let F = require('./function');
let Dao = require('./dao');
let categoryDispatcher = new Dao.category();
function* api() {
}
exports.api = api;

/**
 * @todo 添加
 * @param Env
 */
api.add = function*(Env) {
  Env.I = yield F.Init(Env, [1]);
  if (Env.I.errors) {
    return F.returnMsg(400, Env.I.errors.msg, Env.I.errors.level);
  }
  let fields = Env.I;

  let ret = yield categoryDispatcher.add(fields);
  if (ret.error == 1) return F.returnMsg(400, ret.msg, 3);
  return F.returnMsg(200, ret.msg, 3, ret.data);
};

/**
 * @todo 更新
 * @param Env
 */
api.update = function*(Env) {
  Env.I = yield F.Init(Env, [1]);
  if (Env.I.errors) {
    return F.returnMsg(400, Env.I.errors.msg, Env.I.errors.level);
  }
  let fields = Env.I;
  if (!fields.code) return F.returnMsg(400, '没有code', 3);
  if (!fields.updata) return F.returnMsg(400, '没有更新内容', 3);

  let ret = yield categoryDispatcher.update(fields);
  if (ret.error == 1) return F.returnMsg(400, ret.msg);
  return F.returnMsg(200, 'OK', 3, ret.data);
};

/**
 * @todo 获取列表
 * @param Env
 */
api.list = function*(Env) {
  Env.I = yield F.Init(Env, [1, 2, 3]);
  if (Env.I.errors) {
    return F.returnMsg(400, Env.I.errors.msg, Env.I.errors.level);
  }

  let fields = Env.I;

  let ret = yield categoryDispatcher.list(fields);
  if (ret.error == 1) return F.returnMsg(400, ret.msg, ret.data);
  return F.returnMsg(200, 'OK', 3, ret.data);
};
